<?php
namespace app\passport\controller;
use app\common\controller\PassportBase;
use think\Loader;
use think\Db;

//userid是一生的,不允许更改的[更改需要修改所有数据,或者出靓号系统]
//email是可以更改的,但是是唯一的

//用户同一验证,注册…控制器,处理接口
//IN MY WORLD里 bin 就是与一般网页进行交互的接口

class Bin extends PassportBase
{
	public function _initialize()
	{
		//初始化一些数据
	}

	public function register()
	{
		/**
		 * 网站通用注册
		 */
		//处理数据
		$data = [
			'email'			=>	'tuduweb@qq.com',
			'password'		=>	'tuduweb111',
			'telphone'		=>	'18684967236',
			'username'		=>	'a2',
			'hash_code'		=>	'S2Xzsyu1SL',
		];

		
		//IS_AJAX||$this->error("非法访问");
		
		//检查是否打开注册系统

		//实例化
		$logic = Loader::model('Passport','logic');

		//获取注册相关配置文件

		//检测机器人行为
		$logic->checkBot();

		//检测登录状态
		//$logic->checkLogin()&&$this->error('您登录了本网站!','','',3000);

		//验证参数
		$validate = Loader::validate('Passport');
		if (!$validate->check($data)) {
			return $validate->getError();
		}

		$model = Loader::model('Passport');

		//开始实行注册，后期要使用[事物],因为注册通行证需要进行一系列初始化事情
		if(($id = $model->register($data)) == false){
			//注册错误
		}

		//注册已经成功,进行后续步骤
		
		//如果需要激活,那么启动激活相关模块
		//$logic->activate('530740034@qq.com','email');//生成验证hash,存储hash,……
		//完成推送,模拟用户登录,跳转到欢迎页面
	}

	public function login()
	{
		/**
		 * 登录接口
		 */
		$data = [
			'account'		=>	'tuduweb1@qq.com',

			'password'		=>	'tuduweb111',
			'repasswd'		=>	'tuduweb111s',
			'token'			=>	'',
			'hash_code'		=>	'S2Xzsyu1SL',
		];

		$logic = Loader::model('Passport','logic');

		//根据账号判断账号类型
		if(isset($data['account'])){
			$_type = \app\common\tools\Bin::judgeType($data['account']);
			$data[$_type] = $data['account'];
		}

		//基础参数验证
		$validate = Loader::validate('Passport');
		if (!$validate->scene('login')->check($data)) {
			return $validate->getError();
		}

		//IS_AJAX||$this->error("非法访问");
		
		//检查是否打开用户系统

		

		//获取注册相关配置文件

		//检测机器人行为
		$logic->checkBot();

		//检测登录状态[如果成功,那么成功]
		$logic->checkLogin() && $this->success('您已经登录','index/index',1,200);
		//判断登录方式

		//**************************************************
		//进行登录操作
		//**************************************************
		$model = Loader::model('Passport');
		//这里会更新hash
		$login = $model->login($_type,$data);
		if($login === false){
			//输出错误信息
			return $model->getError();
		}
		return json($login);

	}

	public function reset()
	{
		//重置密码
	}

	//json只是返回json型数据,并没有输出到视图层

	//匹配Hash,如果Hash存在,且时间未过期,则允许操作

	public function checkHash()
	{

	}

	public function t()
	{
		Config::get('passport_identifier');
	}
}
